package collection;
/**
 * 集合之间的操作：并集，交集，差集
 */

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

public class CollectionDemo3 {
    public static void main(String[] args) {
        Collection c1=new ArrayList();
        c1.add("java");
        c1.add("c++");
        c1.add(".net");
        System.out.println("c1:"+c1);

        Collection c2= new HashSet();
        c2.add("ios");
        c2.add("android");
        System.out.println("c2:"+c2);

        /*-----------------------取并集-----------------------------
            boolean addAll(Collection c)
            将集合c中的所有元素添加到当前集合中，取并集操作
            操作完毕后，当前集合发生了改变就返回true
            将c2的所有元素添加到c1中，取并集
         */
        c1.addAll(c2);
        System.out.println("添加了c2后的c1:"+c1);//ArrayList可以放重复元素
        System.out.println("c2还是c2:"+c2);
        /*c2.addAll(c1);
        System.out.println("c2:"+c2);//HashSet内不能有重复的，所以c1里的java放不进c2
        */

        //-----------------------取交集------------------------------
        Collection c3=new ArrayList();
        c3.add("java");
        c3.add("android");
        c3.add("PHP");
        //c1.retainAll(c3);//取c3和当前集合c1的交集
        System.out.println("c1:"+c1);// [java,android]
        System.out.println("c3:"+c3);// c3不变

        //-----------------------删交集------------------------------
        c1.remove(c3);
        System.out.println("c1删除了与c3的交集后:"+c1);
        System.out.println("c3:"+c3);

        //-----------判断当前集合是否包含给定集合中的所有元素-----------------
        //boolean containsAll(Collection c)
        boolean containsAll = c1.containsAll(c3);
        System.out.println("全包含:"+containsAll); //false
    }

}
